/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ucb.ProjetoFinal.service;

import br.ucb.ProjetoFinal.domain.MotivoRejeicao;
import br.ucb.ProjetoFinal.util.CrudService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DCBorges
 */
@Stateless
public class MotivoRejeicaoService {

    @EJB
    private CrudService crudService;

    public void insertMotivoRejeicao(MotivoRejeicao motivoRejeicao) {
        this.crudService.create(motivoRejeicao);
    }

    public void updateMotivoRejeicao(MotivoRejeicao motivoRejeicao) {
        this.crudService.update(motivoRejeicao);
    }

    public void deleteMotivoRejeicao(long id) {
        this.crudService.delete(MotivoRejeicao.class, id);
    }

    public MotivoRejeicao getMotivoRejeicao(long id) {
        return this.crudService.find(MotivoRejeicao.class, id);
    }

    public List<MotivoRejeicao> getMotivoRejeicoes() {
        return this.crudService.findAll(MotivoRejeicao.class);
    }

    public List<MotivoRejeicao> getMotivosRejeicoes(MotivoRejeicao motRej) {
        Map<String, Object> args = new HashMap<String, Object>();
        StringBuilder query = new StringBuilder("select mr from MotivoRejeicao mr where 1=1");
        
        
        if(motRej.getCoMotivoRejeicao() != null){
            query.append(" and mr.coMotivoRejeicao = :pCod");
            args.put("pCod", motRej.getCoMotivoRejeicao());
        }
        
        
        if(motRej.getDeMotivoRejeicao() != null && !motRej.getDeMotivoRejeicao().isEmpty()){
            query.append(" and mr.deMotivoRejeicao  LIKE :pDeMotRej");
            args.put("pDeMotRej", "%" + motRej.getDeMotivoRejeicao() + "%");
        }
        
        return crudService.findWithCustomQuery(query.toString(), args);
    }
}
